import request from '@/utils/request.js'
import qs from 'qs'

const wf_ProcessDefinitionApi = {
  list: 'flow/processList',
  save: '/wf_ProcessDefinition/save',
  view: '/flow/viewCharDiagram',
  del: '/flow/processRemove',
  dels: '/wf_ProcessDefinition/batchDel',
  output: '/wf_ProcessDefinition/output',
  findProcessInstanList: 'flow/findProcessInstanList',
  history: 'flow/historyProcessList',
  findDefinitionNodeList: 'flow/findDefinitionNodeList'
}

/**
 * 查询已发布的流程模型用户节点列表
 * @param processdefinitionid 流程定义id(对应act_ru_task表的PROC_DEF_ID_字段)
 * @return
 */
export function findDefinitionNodeList(processdefinitionid) {
  return request({
    url: wf_ProcessDefinitionApi.findDefinitionNodeList,
    method: 'post',
    params: {
      processdefinitionid
    }
  })
}


/**
 * 历史流程定义
 */
export function historyList(params, pageinfo) {
  return request({
    url: wf_ProcessDefinitionApi.history,
    method: 'post',
    params: params,
    data: pageinfo
  })
}

/**
 * 导出流程定义
 */
export function output(data) {
  return request({
    url: wf_ProcessDefinitionApi.output,
    method: 'post',
    data: data,
    responseType: 'blob'
  })
}
/**
 * 批量删除流程定义
 * @param {*} parameter
 */
export function delWf_ProcessDefinitions(ids) {
  return request({
    url: wf_ProcessDefinitionApi.dels + '/' + ids,
    method: 'post'
  })
}
/**
 * 删除流程定义
 * @param {*} id
 */
export function delWf_ProcessDefinition(id) {
  let parameter = {
    "deploymentId": id
  };
  return request({
    url: wf_ProcessDefinitionApi.del,
    method: 'post',
    data: qs.stringify(parameter)
  })
}
/**
 * 查看、编辑流程定义
 * @param {*} id
 */
export function viewWf_ProcessDefinition(processdefinitionid) {
  let parameter = {
    "processdefinitionid": processdefinitionid
  };
  return request({
    url: wf_ProcessDefinitionApi.view,
    method: 'post',
    data: qs.stringify(parameter)
  })
}
/**
 * 保存流程定义
 * @param {*} parameter
 */
export function saveWf_ProcessDefinition(parameter) {
  return request({
    url: wf_ProcessDefinitionApi.save,
    method: 'post',
    data: parameter
  })
}
/**
 * 查询流程定义列表
 * @param {*} parameter
 */
export function queryWf_ProcessDefinitionList(params, queryParam) {
  return request({
    url: wf_ProcessDefinitionApi.list,
    method: 'post',
    params: params,
    data: queryParam
  })
}

/**
 * 进行中的流程定义实例列表
 * @param {*} id
 */
export function findProcessInstanList(body) {
  return request({
    url: wf_ProcessDefinitionApi.findProcessInstanList,
    method: 'post',
    data: body
  })
}